Contention for resources is a common occurrence in modern server systems. Contention for a resource arises when two or more concurrently running programs want to access the resource at the same time. Because the resource cannot be accessed by two running programs at the same time, one of the running programs waits while the other running program accesses the resource. As more programs try to access the resource, each of the programs may have to wait longer periods of time to access the resource.
Malicious entities can take advantage of contention for a resource when attempting to attack a server system. For example, a malicious entity can launch a denial of service (DoS) attack by sending a large number of illegitimate requests to a server system. In response the requests, the server system starts new processes that attempt to access the same resource. These new processes are in contention for the resource with processes started in response to legitimate requests. Because the processes started in response to illegitimate requests outnumber the processes started in response to legitimate requests, the processes started in response to legitimate requests may not be able to access the resource. In this way, the malicious entity can prevent clients from accessing the resource for legitimate purposes.
Furthermore, one or more process running on behalf of a first legitimate client can attempt to access a resource heavily. At the same time, processes running on behalf of other legitimate clients may need to sporadically access the resource. In such circumstances, the first legitimate client's processes can effectively monopolize the resource, preventing the other clients' processes from accessing the resource in a timely manner.